<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

    <h:panelGrid columns="18">
        <h:outputLabel value="Grupo Empresarial" rendered="#{grupoShow}"/>
        <p:selectOneMenu id="#{ui_cmb}_grupo" rendered="#{grupoShow}" value="#{jsfBean.reporteContext.grupoEmpresarialSelect}"
                         converter="#{managerGrupoDTOConverter}" effect="fade" style="width: 150px">
            <f:selectItem itemValue="" itemLabel="Todos"/>
            <f:selectItems value="#{jsfBean.cmbGrupoReporte}"
                           var="grupo" itemLabel="#{grupo.nombre}" itemValue="#{grupo}"/>
            <p:ajax event="change" update=":messages :frmReporte:tabReport:#{ui_cmb}_sociedad"
                    listener="#{jsfBean.onSelectGrupo}"/>
        </p:selectOneMenu>
        <p:spacer width="30px"/>
        <h:outputLabel value="Sociedad"/>
        <p:selectOneMenu id="#{ui_cmb}_sociedad" value="#{jsfBean.reporteContext.sociedadSelect}"
                         converter="#{managerSociedadDTOConverter}" effect="fade" style="width: 150px">
            <f:selectItem itemValue="" itemLabel="Todos"/>
            <f:selectItems value="#{jsfBean.cmbSociedadReporte}"
                           var="sociedad" itemLabel="#{sociedad.nombre}" itemValue="#{sociedad}"/>
        </p:selectOneMenu>
        <p:spacer width="30px"/>
        <h:outputLabel value="Agrupación"  rendered="#{agrupacionShow}"/>
        <p:selectOneMenu id="#{ui_cmb}_agrupacion" value="#{jsfBean.reporteContext.agrupacionSelect}"
                         rendered="#{agrupacionShow}"  converter="#{managerAgrupacionDTOConverter}"
                         effect="fade" style="width: 150px">
            <f:selectItem itemValue="" itemLabel="Todos"/>
            <f:selectItems value="#{jsfBean.cmbAgrupacionReporte}"
                           var="agrupacion" itemLabel="#{agrupacion.nombre}" itemValue="#{agrupacion}"/>
        </p:selectOneMenu>
        <p:spacer width="30px"/>
        <h:outputLabel value="Moneda"  rendered="#{monedaShow}"/>
        <p:selectOneMenu id="#{ui_cmb}_moneda" value="#{jsfBean.reporteContext.monedaSelect}"
                         rendered="#{monedaShow}"  converter="#{managerTipoMonedaConverter}"
                         effect="fade" style="width: 180px">
            <f:selectItem itemValue="" itemLabel="Todos"/>
            <f:selectItems value="#{jsfBean.cmbMonedaReporte}"
                           var="moneda" itemLabel="#{moneda.nombre}" itemValue="#{moneda}"/>
        </p:selectOneMenu>
        <p:spacer width="30px"/>
        <h:outputLabel value="Cuenta Contable" rendered="#{cuentaContableShow}"/>
        <p:inputText id="#{ui_cmb}_txt_cuenta" rendered="#{cuentaContableShow}" value="#{jsfBean.reporteContext.cuentaContableSelect}"
                     effect="fade" style="width: 150px">
        </p:inputText>
        <p:spacer width="30px"/>
        <h:outputLabel value="Usuario" rendered="#{usuarioShow}"/>
        <p:inputText id="#{ui_cmb}_txt_usuario" rendered="#{usuarioShow}" value="#{jsfBean.reporteContext.usuarioSelect}"
                     effect="fade" style="width: 150px">
        </p:inputText>
        <p:spacer width="30px"/>
        <h:outputLabel value="Proveedor" rendered="#{proveedorShow}"/>
        <p:inputText id="#{ui_cmb}_txt_proveedor" rendered="#{proveedorShow}" value="#{jsfBean.reporteContext.proveedorSelect}"
                     effect="fade" style="width: 150px">
        </p:inputText>
        <p:spacer width="30px"/>
        <p:commandButton value="Buscar" icon="ui-icon-refresh"  process="@this,#{ui_cmb}_txt_cuenta,#{ui_cmb}_grupo,#{ui_cmb}_txt_proveedor,#{ui_cmb}_txt_usuario,#{ui_cmb}_moneda, #{ui_cmb}_agrupacion, #{ui_cmb}_sociedad"
                         actionListener="#{jsfBean.onSelectFiltro}"
                         ajax="true" update="#{ui_dtLista} :frmReporte :messages"
                />
    </h:panelGrid>
    <p:toolbar>
        <p:toolbarGroup align="right">
            <p:commandLink ajax="false" process="@this"
                           actionListener="#{jsfBean.printExcelReportAction}" >
                <p:graphicImage value="../resources/images/newExcel.png" width="25px" height="25px"/>
                <f:attribute name="templateFile" value="#{jasperReporte}"/>
                <f:attribute name="templateType" value="xls"/>
                <f:attribute name="reportType" value="#{tipoReporte}"/>
            </p:commandLink>
            <p:commandLink ajax="false" process="@this"
                           actionListener="#{jsfBean.printExcelReportAction}">
                <p:graphicImage value="../resources/images/pdf.png" width="25px" height="25px"/>
                <f:attribute name="templateFile" value="#{jasperReporte}"/>
                <f:attribute name="templateType" value="pdf"/>
                <f:attribute name="reportType" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:toolbarGroup>
    </p:toolbar>
    <p:dataTable id="#{ui_dtLista}" value="#{data_reporte}"
                 sortBy="#{item.totalGeneral}" sortOrder="descending"
                 var="item" rowKey="#{item.id}"
                 rows="10" paginator="true"
                 paginatorPosition="bottom" emptyMessage="No existen registros"
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                 rowsPerPageTemplate="5,10,25,50">
        <p:columnGroup type="header">
            <p:row  >
                <p:column colspan="#{totalColsPan}"  headerText="Totales: "  style="text-align:right" />
                <p:column styleClass="columnRightTopClass">
                    <f:facet name="header" >
                        <h:outputText value="#{totalBean.totalAnno1}">
                            <f:convertNumber pattern="###,###,##0.000"/>
                        </h:outputText>
                    </f:facet>
                </p:column>
                <p:column styleClass="columnRightTopClass" >
                    <f:facet name="header">
                        <h:outputText value="#{totalBean.totalAnno2}">
                            <f:convertNumber pattern="###,###,##0.000"/>
                        </h:outputText>
                    </f:facet>

                </p:column>
                <p:column styleClass="columnRightTopClass" >
                    <f:facet name="header">
                        <h:outputText value="#{totalBean.totalAnno3}">
                            <f:convertNumber pattern="###,###,##0.000"/>
                        </h:outputText>
                    </f:facet>

                </p:column>
                <p:column styleClass="columnRightTopClass" >
                    <f:facet name="header">
                        <h:outputText value="#{totalBean.totalAnno4}">
                            <f:convertNumber pattern="###,###,##0.000"/>
                        </h:outputText>
                    </f:facet>
                </p:column>
                <p:column styleClass="columnRightTopClass">
                    <f:facet name="header">
                        <h:outputText value="#{totalBean.totalGeneral}">
                            <f:convertNumber pattern="###,###,##0.000"/>
                        </h:outputText>
                    </f:facet>
                </p:column>
            </p:row>
            <p:row >
                <p:column headerText="Grupo Empresarial" rendered="#{grupoShow}"/>
                <p:column headerText="Usuario" rendered="#{usuarioShow}"/>
                <p:column headerText="#{tituloEntidad}" rendered="#{proveedorShow}"/>
                <p:column headerText="Cuenta Contable" rendered="#{cuentaContableShow}"/>
                <p:column headerText="Sociedad" rendered="#{sociedadShow}"/>
                <p:column headerText="Agrupación: "  rendered="#{agrupacionShow}"/>
                <p:column headerText="Moneda" rendered="#{monedaShow}"/>
                <p:column headerText="Hasta #{jsfBean.reporteContext.checkPoint.anno1}" />
                <p:column headerText="#{jsfBean.reporteContext.checkPoint.anno2}" />
                <p:column headerText="#{jsfBean.reporteContext.checkPoint.anno3}" />
                <p:column headerText="#{jsfBean.reporteContext.checkPoint.anno4}" />
                <p:column headerText="Total General" />
             </p:row>
        </p:columnGroup>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{grupoShow}">
            <h:outputText value="#{item.grupoEmpresarialNombre}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{usuarioShow}">
            <h:outputText value="#{item.usuario}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{proveedorShow}">
            <h:outputText value="#{item.acreedorRazonSocial}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{cuentaContableShow}">
            <h:outputText value="#{item.cuentaContableId}-#{item.cuentaContableNombre}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{sociedadShow}" >
             <h:outputText value="#{item.sociedadNombre}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{agrupacionShow}">
            <h:outputText value="#{item.agrupacionNombre}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{monedaShow}">
            <h:outputText value="#{item.codigoMoneda}"/>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                            update=":detalleItem">
                <h:outputText value="#{item.anno1}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno1}"/>
                <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
                <f:attribute name="usuario" value="#{item.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{item.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{item.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                            update=":detalleItem">
                <h:outputText value="#{item.anno2}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
                <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
                <f:attribute name="usuario" value="#{item.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{item.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{item.cuentaContableId}"/>
                <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
                <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                            update=":detalleItem">
                <h:outputText value="#{item.anno3}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
                <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
                <f:attribute name="usuario" value="#{item.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{item.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{item.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                            update=":detalleItem">
                <h:outputText value="#{item.anno4}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
                <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
                <f:attribute name="usuario" value="#{item.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{item.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{item.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column sortBy="#{item.totalGeneral}" styleClass="columnRightTopClass" style="min-width:30px">
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{item.totalGeneral}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
                <f:attribute name="usuario" value="#{item.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{item.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{item.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>

    </p:dataTable>

</ui:composition>
